#include <string.h>
#include <math.h> 
#include <stdio.h>

#define MAXHASHSIZE 1000
#define MAXHASHENTRYLEN 128

#define ARECORD 899
#define AID 900
#define AAND 901
#define AOR 902
#define ANOT 903
#define AU 904
#define AF 905
#define AG 906
#define AX 907
#define ABR 908
#define ASPECIAL 909
#define AUCHILD 910
#define ACOMP 911
#define AINTEGER 912
#define ACOMPARATOR 913

#define AADD 914
#define ASUB 915
#define AMUL 916
#define ADIV 917

#define CTRUE 1009
#define CFALSE 1010
#define CFINAL 1011

struct nodedash {
	int nodeid; //unique identifier for this node
	int nodevar; //either the variable or true/false
	int accept;//Accepting or Rejecting state
	struct nodedash* succ1; //left successor
	struct nodedash* succ2; //right successor
	struct nodedash* succ3; //extra successor
	int nodetype; //AND, OR node; special nodes (triplets)
};

typedef struct nodedash* node;

